'''
Created on 15/10/2011

@author: Daniel
'''
from Tkinter import *
import tkMessageBox
from VariaveisGlobais import *
from Programa import *

class Janela_consulta_emprestimo:
    def __init__(self, raiz):
        self.meuPai = raiz

        self.frame1=Frame(self.meuPai)
        self.frame1.grid(row = 1, column = 1)
        self.frame2=Frame(self.frame1)
        self.frame2.grid(row = 5, column = 1)

        self.var_escolha = StringVar(self.frame1)
        self.var_escolha.set('Aluno') 
        self.escolha = OptionMenu(self.frame1, self.var_escolha, 'Aluno', 'Funcionario')
        self.escolha.config(width = 8)        
        self.escolha.grid(row = 1, column = 1, sticky = W)

        self.texto = Entry(self.frame1, width = 20, font = fonte_texto)
        self.texto.grid(row = 1, column = 1, sticky = E)
        self.texto.focus_force()

        self.botao_pesquisar = Button(self.frame1, width = 15, command = self.pesquisar, text = "Pesquisar")
        self.botao_pesquisar.grid(row = 1, column = 3, sticky = W)

        Label(self.frame1, text='Nome    /    Maticula/CPF', font = fonte_label).grid(row = 2, column = 1, sticky = W)
        self.listbox_clientes = Listbox(self.frame1, font = fonte_texto, width = 35)
        self.listbox_clientes.grid(row = 3, column = 1, sticky = W)

        self.scroll = Scrollbar(self.frame1, command = self.listbox_clientes.yview)
        self.scroll.grid(row = 3, column = 2, sticky=(N,S))

        self.listbox_clientes['yscrollcommand'] = self.scroll.set

        Label(self.frame1, text='Itens de posse', font = fonte_label).grid(row = 2, column = 3, sticky = W)
        self.listbox_itens_posse = Listbox(self.frame1, font = fonte_texto, width = 40, height = 4)
        self.listbox_itens_posse.grid(row = 3, column = 3, sticky = (N,W))

        self.botao_mostrar_itens = Button(self.frame2, width = 20, command = self.escolher_selecionado, text = "Exibir itens de posse")
        self.botao_mostrar_itens.grid(row = 2, column = 1, sticky = NW, padx= 10, pady = 10)

        self.botao_entrega_simples = Button(self.frame1, width = 20, command = self.entrega_simples, text = "Entregar Selecionado")
        self.botao_entrega_simples.grid(row = 5, column = 3, sticky = NW, padx= 10, pady = 10)

        self.botao_entrega_todos = Button(self.frame1, width = 20, command = self.renovar_simples, text = "Renovar Selecionado")
        self.botao_entrega_todos.grid(row = 5, column = 3, sticky = NE, padx= 10, pady = 10)
        
        self.botao_renova_simples = Button(self.frame1, width = 20, command = self.entrega_todos, text = "Entregar Todos")
        self.botao_renova_simples.grid(row = 6, column = 3, sticky = NW, padx= 10, pady = 10)
        
        self.botao_renova_todos = Button(self.frame1, width = 20, command = None, text = "Renovar Todos")
        self.botao_renova_todos.grid(row = 6, column = 3, sticky = NE, padx= 10, pady = 10)
        
#        self.botao_cancelar = Button(self.frame2, width = 15, command = None, text = "Cancelar")
#        self.botao_cancelar.grid(row = 3, column = 2, sticky = NE, padx = 10, pady = 10)

#        Label(self.frame1, text='Endereco', font = fonte_label).grid(row = 4, column = 3, sticky = W)
#        self.listbox_endereco = Listbox(self.frame1, font = fonte_texto, width = 40, height = 8)
#        self.listbox_endereco.grid(row = 5, column = 3, sticky = W)

    def pesquisar(self):
        
        self.listbox_clientes.delete(0, END)
        
        if self.var_escolha.get() == 'Aluno':
            self.resultado = programa.consultar_aluno("matricula", self.texto.get())
            
            for objeto in self.resultado:
                self.nome = objeto[1]
                self.matricula = objeto[5]
                
                self.listbox_clientes.insert(END, str(self.nome) + '     ' + str(self.matricula))
                
        if self.var_escolha.get() == "Funcionario":
            self.resultado = programa.consultar_aluno("cpf", self.texto.get())
            
            for objeto in self.resultado:
                self.nome = objeto[1]
                self.cpf = objeto[5]
                
                self.listbox_clientes.insert(END, str(self.nome) + '     ' + str(self.matricula))
    #e necessario um widget com tabelas, mas o tkinter nao disponibiliza, pra poder gerar todas as informacoes necessarias na interface grafica, o listbox
    #nao esta suprindo nossa necessidade.         
    def escolher_selecionado(self):
        
        indice = self.listbox_clientes.curselection()[0]
        self.valor = self.resultado[int(indice)]
        
        self.cliente_escolhido = self.valor
        
        self.identificador = self.valor[5]
        
        self.resultado2 = biblioteca.consultar_emprestimo(self.identificador)
        self.lista_livros = self.resultado2
        
        self.listbox_itens_posse.delete(0, END)
        for objeto in self.resultado2:
            self.titulo = objeto[1]
            self.codigo = objeto[8]
            
            self.listbox_itens_posse.insert(END, str(self.titulo) + '       ' + str(self.codigo))
            
    def entrega_simples(self):
        
        indice = self.listbox_itens_posse.curselection()[0]
        self.valor = self.resultado2[int(indice)]
        
        self.identificador = self.valor[8]
        self.tipo_livro = self.valor[9]
        biblioteca.entrega(self.identificador, self.tipo_livro, self.var_escolha.get(), self.cliente_escolhido[5])
        
    def entrega_todos(self):
        
        biblioteca.entrega_completa(self.var_escolha.get(), self.cliente_escolhido[5], self.lista_livros)
        
    def renovar_simples(self):
        
        indice = self.listbox_itens_posse.curselection()[0]
        self.valor = self.resultado2[int(indice)]
        
        self.identificador = self.valor[8]
        biblioteca.renovar(self.identificador)
        
        